Date		:	15 juin 1991
		Protection	:	DISQUETTE CLEF et DECREMENTATION
		Programme	:       LEMMINGS
		Outils		:	SOFT-ICE
		Fichier		:	RUSSEL.DAT
		Temps pass�	:	15 MINUTES
		Soci�t�		:	PSYGNOSIS
		Divers	        :	Cr�ation du fichier LEM.EXE
		Origine		:	MICHOU
		Num�ro		:	090


	Une protection disquette classique ( disquette que je n'ai d'ailleurs
	pas pu copier ni avec COPY BOARD ni avec le dernier cri des copieurs
	COPYWRITE et COPY2PC, m�me en changeant de machine, de lecteur, etc...)
	Heureusement le soft une fois install� sur disque dur va lire la 
	disquette clef puis cr�er un fichier cach� intitul� RUSSEL.DAT de 256 
	octets. Apr�s cel� le soft fonctionne sans acc�s � la disquette clef.

	L'histoire aurait pu s'arr�ter l� ( et la protection n'aurait pas �t�
	� la hauteur du renom de la soci�t� ) si ce fameux fichier ne 
	permettait de lancer le jeu qu'une dizaine de fois !.
	Bien jou�. Mais pas tr�s efficace puisqu'il suffit de comparer le
	fichier qui ne permet plus de jouer � un de ces pr�decesseur.
	Et en fait, avec un oeil exerc� on remarque que la premi�re fois que
	le fichier est cr�e son premier octet est �gal � zero. Et qu'il
	s'incr�mente � chaque utilisation du jeu jusqu'� atteindre 9.
	Au del� le soft redemande la disquette clef.

	Une "foultitude" de solutions existe � ce type de protection, la plus
	simple et la plus rapide est de renomer le fichier d'origine ( sagement
	sauver lors de l'installation sous un autre nom ) en �crasant celui qui
	ne veut plus se charger. Mais c'est un READ ONLY et HIDDEN, alors
	comme tout le monde ne poss�de pas NORTON COMMANDER ou PCTOOLS j'ai
	simplement �crit un minuscule programme en C pour que cet octet soit
	toujours �gal � z�ro.

	Note: En passant le fichier VGALEMI.EXE � SOFT-ICE on trouve bien
	l'endroit ou le soft ouvre le fichier RUSSELL.DAT par une INT 21
	AH = 3D et lit la premi�re position qu'il incr�mente.
	Cette chaine est cod�e sinon il eut �t� facile d'emp�cher l'incr�menta-
	tion. En fait tout le fichier est cod� non pas par LZEXE ou EXEPACK
	mais par PKLITE ( petit dernier ). PKLITE poss�de bien une option
	de d�compactage: PKLITE -X VGALEMI.EXE mais ce dernier donne le
	message: EXPANSION DE FICHIER IMPOSSIBLE ! Alors qu'il ne le donne
	pas sur d'autre fichier. Il le donne �galement sur lui-m�me ce qui
	me laisse penser qu'il doit exister dans la doc ou dans une version
	plus r�cente une possibilit� d'emp�cher le retour � l'original.
	Je poss�de une version b�ta de PKLITE, ceci expliquerait peut-�tre
	cel�. A voir ult�rieurement...

	#include 
	#include 
	#include           
	
	char inpf[]={"russell.dat"};
	
	 void main()
	{
	 int fh,wrt;
	 printf("FREDDY_SOFT V1.01 15 juin 1991.\n");
	 printf("Lemmings infinite hard disk player.\n");
	 chmod(inpf,S_IREAD|S_IWRITE);   /* on modifie l'attribut en WRITE */
	  if((fh=open(inpf,O_BINARY|O_RDWR))==-1)
	   {
	    printf("Fichier %s inexistant ou erreur d'ouverture.\n",inpf);
	    exit(0);
	   }
	  if((wrt=write(fh,0,1))==-1)
	   {
	    printf("erreur d'�criture\n");
	    exit(0);
	   }
	 printf("Everythings is OK thanks to ETOYOC\n");
	 getch();	
	 close( fh );
	}

	FREDDY